
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define BUFFER_SIZE 1024

int main() {
    FILE *proc_file;
    char buffer[BUFFER_SIZE];
    char *version_str;

    // 打开/proc/version文件
    proc_file = fopen("/proc/version", "r");
    if (!proc_file) {
        perror("无法打开/proc/version");
        return EXIT_FAILURE;
    }

    // 读取文件内容
    if (!fgets(buffer, BUFFER_SIZE, proc_file)) {
        perror("读取/proc/version失败");
        fclose(proc_file);
        return EXIT_FAILURE;
    }

    // 关闭文件
    fclose(proc_file);

    // 解析内核版本号
    // 典型格式: "Linux version 5.15.0-78-generic (buildd@...) ..."
    version_str = strtok(buffer, " ");  // 跳过"Linux"
    version_str = strtok(NULL, " ");    // 跳过"version"
    version_str = strtok(NULL, " ");    // 获取版本号

    if (version_str) {
        printf("内核版本号: %s\n", version_str);
        return EXIT_SUCCESS;
    } else {
        fprintf(stderr, "无法解析内核版本号\n");
        return EXIT_FAILURE;
    }
}



#if 0
#include <stdio.h>

int main()
{
	printf("Hello linux5.10.168 in Qemu\n") ;
	return 0 ;
}
#endif 
